package org.j5108.repository.Impl;

import org.j5108.beans.Product;
import org.j5108.repository.ProductRepository;
import org.springframework.stereotype.Repository;

import java.util.ArrayList;
import java.util.List;

/**
 * 产品类的持久层实现类
 */
@Repository
public class ProductRepositoryImpl implements ProductRepository {

    /**
     * 用来模拟数据库
     */
    private List<Product> products = new ArrayList<>();

    public ProductRepositoryImpl() {
        Product iphone = new Product();
        iphone.setId(1);
        iphone.setName("Apple iPhone 6s");
        iphone.setCount(50);
        iphone.setPrice(4999.00);
        iphone.setDesc("库克携美国Apple全体员工2015年度年度巨献！史上最高端大气上档次手机");
        products.add(iphone);

        Product s7edge = new Product();
        s7edge.setId(2);
        s7edge.setName("三星盖乐世s7 edge");
        s7edge.setPrice(4799.00);
        s7edge.setCount(20);
        s7edge.setDesc("三星2016年度旗舰机型，搭配高通骁龙820处理器，3D超弧面屏，超三防手机，三星2016年度最诚意作品");
        products.add(s7edge);

        Product s7 = new Product();
        s7.setId(3);
        s7.setName("三星盖乐世s7");
        s7.setPrice(4299.00);
        s7.setCount(20);
        s7.setDesc("三星2016年度旗舰机型，搭配高通骁龙820处理器，超三防手机，三星2016年度新旗舰");
        products.add(s7);

        Product mi = new Product();
        mi.setId(4);
        mi.setName("小米5代");
        mi.setPrice(1999.00);
        mi.setCount(10);
        mi.setDesc("雷布斯2016年度最佳巨献，搭载高通骁龙820处理器，4G内存。小米，为发烧而生！");
        products.add(mi);
    }

    @Override
    public List<Product> queryAllProducts() {
        return products;
    }

    @Override
    public Product queryProductById(Integer id) {
        Product pro = null;
        for ( Product p : products ) {
            if ( p.getId() == id )
                pro = p;
        }
        return pro;
    }

    @Override
    public Product queryProductByName(String name) {
        return null;
    }

    @Override
    public Integer modifyProductById(Product product) {
        return null;
    }

    @Override
    public Integer addProduct(Product product) {
        return null;
    }

    @Override
    public Integer removeProductById(Integer id) {
        return null;
    }
}
